<!DOCTYPE html>
<html>
<body>

<p>Checks that when going back to a page that frames that were navigated, that the final URL of the frames is loaded directly, instead the initial URL. Four alerts should appear, in this order:</p>

<ol>
    <li>Initial URL loaded.</li>
    <li>Final URL loaded.</li>
    <li>Going back.</li>
    <li>Final URL loaded.</li>
</ol>

<iframe a width="200" height="200" onunload=""></iframe>

<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFrames();
    testRunner.waitUntilDone();
    testRunner.dumpBackForwardList();
} else {
    // Disable page cache when not running under the DRT.
    onunload = function() {};
}

function runTest()
{
    if (sessionStorage.didNav) {
        delete sessionStorage.didNav;
        if (window.testRunner)
            testRunner.notifyDone();
    } else {
        // Navigate a timeout to make sure we generate a history entry that we can go back to.
        setTimeout(function() {location.href = 'resources/alert-then-back.html';}, 0);
        sessionStorage.didNav = true;
    }
};

// Wait for the onload event before starting the first navigation. Not waiting
// may cause the second history entry to replace the current one instead of
// being appended. history.back() failed for this reason.
// See https://crbug.com/862580
if (!sessionStorage.didNav) {
  window.onload = function() {
    document.querySelector("iframe").src = "resources/frame-initial-url.html"
  }
}

</script>
</body>
</html>
